iT邦幫忙

2025 iThome 鐵人賽

DAY 4
0
Build on AWS

從零到雲端:AWS 開發之路系列 第 4

Day4 使用 S3 建立儲存空間,上傳並分享一張圖片

  • 分享至 

  • xImage
  •  

什麼是 S3?

S3 (Simple Storage Service) 就是 AWS 的「雲端硬碟」,你可以把檔案(圖片、影片、文件、程式檔案…)放在 S3。我們可以把S3想成Google Drive + 網站伺服器的結合。

  • 特點:
    1. 超大容量: 幾乎無限存放
    2. 高可用性: AWS 幫你備份,不會因為硬碟壞掉而消失
    3. 可公開分享: 可以把圖片、檔案變成網址,讓任何人存取

實作:建立一個 S3 儲存桶(Bucket)

Step1: 登入 AWS Console

搜尋 S3 → 點進去

Step2: 建立 Bucket

  • 點 「建立儲存貯體 (Create bucket)」
  • 輸入名稱(全域唯一,不能跟別人重複,例如:michelle-s3-demo)
  • 物件擁有權:在 S3 裡,一個物件 (Object) 就是你上傳的檔案。物件擁有權決定「誰」被視為這個檔案的擁有者
    1. ACL已停用(Bucket Owner Enforced)
    預設建議選項,意思是:不管誰上傳檔案,Bucket 擁有者(就是你)永遠是檔案的擁有者,這樣最單純,因為管理起來比較不亂。
    2. ACL已啟用(ACLs Enabled)
    允許使用 ACL 來細分檔案擁有者,例如讓上傳者本身是物件的擁有者,適合多人共用的情境(例如不同 AWS 帳號要一起存放檔案),對新手來說比較複雜。

(這邊我們先勾停用,來看看待會會發生什麼事)
https://ithelp.ithome.com.tw/upload/images/20250912/20169251xAcsojzbbC.png

Step3: 設定公開存取(最重要)

  • 預設 S3 會鎖起來不讓人看,這樣你上傳的圖片網址會 403 Forbidden
  • 在建立時,我們可以把「封鎖所有公開存取」的勾勾取消,這時系統會警告你,這邊我們先按確認(Confirm)建立完成(如果沒勾到之後也可以再補勾)
    https://ithelp.ithome.com.tw/upload/images/20250912/201692513Fg6mPxW6F.png

Step4: 儲存貯體版本控制

什麼是版本控制?
就像 Google 文件一樣,每次你修改或覆蓋同一個檔案,S3 可以幫你保留「舊版本」。

  • 好處
    避免誤刪或覆蓋 ,如果你不小心上傳了一個錯誤的圖片,可以回復到之前的版本
    版本管理 → 可以追蹤檔案的歷史
  • 壞處:
    會佔用更多儲存空間(因為每一個版本都要算容量)

這邊因為只是練習上傳圖片,先保持「停用」就好
等到第 2 週我們要放網站內容時,如果擔心覆蓋檔案,可以再開啟
https://ithelp.ithome.com.tw/upload/images/20250912/20169251nAWilMZoZ0.png

Step5: 預設加密怎麼選?

這部分決定了你上傳的檔案(物件)會不會自動加密,存在 AWS 的硬碟上。AWS 其實會幫你安全保存,但「加密」是額外的保護,確保就算別人偷到硬碟,也看不懂內容。
1. 停用 (Disabled)

  • 檔案不上加密,直接存放
  • 比較快,但安全性低

2. 啟用 (Enabled)(建議的做法)

  • SSE-S3:AWS 幫你自動用它的金鑰加密,最簡單,幾乎不需要額外設定(不會多收錢)
  • SSE-KMS:用 AWS Key Management Service(KMS)金鑰管理,適合有合規需求的公司(進階)
  • SSE-C:自己提供金鑰(很少用,新手目前不需要)

這邊的練習我們就選預設加密,設定完後,現在你有一個空的 Bucket!
https://ithelp.ithome.com.tw/upload/images/20250912/201692516Cvmxufbwl.png

利用S3上傳圖片

建立完儲存桶後,我們開始在儲存桶內上傳圖片吧!

Step1: 進入剛剛的 Bucket

https://ithelp.ithome.com.tw/upload/images/20250912/2016925138ticOWTpf.jpg

Step2: 點 「上傳 (Upload)」 → 選擇電腦上的一張圖片

https://ithelp.ithome.com.tw/upload/images/20250912/201692512gsCnneBZo.jpg

Step3: 上傳完成後,你會看到圖片列在Bucket裡

https://ithelp.ithome.com.tw/upload/images/20250912/20169251PjCKR9a3R2.png

Step4: 更改Bucket

由於我們在前面的物件擁有權中停用ACL,因此我們上傳的圖片點擊URL會顯示檔案網址雖然存在,但沒有公開存取權限,依舊看不見圖片。
https://ithelp.ithome.com.tw/upload/images/20250912/2016925118KeKaTQZV.png
所以在這邊我們來到剛剛建立的Bucket,選擇「許可」中的「存取控制清單 (ACL)」做編輯,將ACL開啟後儲存。
https://ithelp.ithome.com.tw/upload/images/20250912/20169251Zyy5x5Ay4i.png
點進去剛上傳的圖片檔,找到「物件動作」後點擊「使用ACL設為公有」
https://ithelp.ithome.com.tw/upload/images/20250912/20169251PAVdWcS5Ne.jpg
點擊「設為公有」
https://ithelp.ithome.com.tw/upload/images/20250912/201692511Dh6uRH4ir.png
我們就可以在圖片的「屬性」中點擊URL
https://ithelp.ithome.com.tw/upload/images/20250912/20169251C7PlXkh77c.jpg
點進後就可以看到剛剛上傳的照片啦!是一隻超可愛的柯基,URL在下方給大家看/images/emoticon/emoticon07.gif
https://michelle-s3-demo.s3.ap-east-2.amazonaws.com/IMG_6789.jpeg


上一篇
Day3 認識 EC2(雲端主機)並啟動第一台伺服器
系列文
從零到雲端:AWS 開發之路4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言